package Text6;

import java.util.*;

public class Main {
    //    第一行包含两个整数 n和 m，分别表示数的个数和操作次数。
//    第二行包含 n个整数，表示完整数列。
//    接下来 m行，每行包含三个整数 k,a,b（k=0，表示求子数列[a,b]的和；k=1，
//    表示第 a个数加 b）。数列从 1开始计数。
    static int N = 100010, n, m;
    static int[] arr = new int[N];
    static int[] tr = new int[N];

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        m = in.nextInt();
        for (int i = 1; i <= n; i++) {
            arr[i] = in.nextInt();
            add(i, arr[i]);
        }
        while (m-- > 0) {
            int k = in.nextInt();
            int a = in.nextInt();
            int b = in.nextInt();
            if (k == 0) {
                System.out.println(query(b) - query(a - 1));
            } else if (k == 1) {
                add(a, b);
            }
        }
    }

    private static long query(int x) {
        long res = 0;
        for (int i = x; i > 0; i -= lowbit(i)) {
            res += tr[i];
        }
        return res;
    }

    private static void add(int x, int v) {
        for (int i = x; i <= n; i += lowbit(i)) {
            tr[i] += v;
        }
    }

    private static int lowbit(int x) {
        return x & -x;
    }
}
